原帖 | Jack | 2026-03-04 00:12 | 👍0 | 阅读约1
Q3 平常如何排查软件问题?遇到不可复现的问题怎么办?
问题:平常如何排查软件问题?遇到不可复现的问题怎么办?
回答:主要使用工具,如示波器、万用表、485报文抓取工具、在线调试器等。对于不可复现问题,会通过理论分析,使用故障树等方法拆解可能原因,从根因上逐步排查和验证可能性最大的点
自我评价:这里排查问题的方式是不是讲得太基础了?
建议:(老师回复)
我排查问题一般先分层:先确认供电和时钟这种底座稳不稳,再看外设波形和通信,再往上看协议解析和业务状态机。工具肯定会用示波器、逻分、串口抓包,但更关键是“让问题可观测”。
碰到不可复现的,我会做三件事:第一是加现场日志,把关键状态、错误码、最后一条协议帧这些在异常时落盘;第二是把复位原因和异常栈保存下来,至少知道死在哪;第三是按概率最高的路径做假设验证,比如先怀疑竞态、缓冲区越界、超时没处理这些典型问题,然后通过加保护、加断言、加水位监控把它逼出来。这样一般都能把“偶现”变成“可定位”。
相关笔记